using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NCT.Framework;

namespace VISS.API.Admins {

    /// <summary>
    /// Values of admin type
    /// </summary>
    public enum EAdminType : byte {
        Mod = 1,
        Root = 2
    }

    /// <summary>
    /// Values of admin rights
    /// </summary>
    public enum EAdminRight {
        Nothing = 0,
        User = 1,
        Commons = 2
    }

    /// <summary>
    /// Contains info about Web Admin
    /// </summary>
	public class AdminEnt {

		#region Properties

        /// <summary>
        /// Gets or sets the name of the user.
        /// </summary>
        /// <value>The name of the user.</value>
		public string UserName { get; set; }
        /// <summary>
        /// Gets or sets the password.
        /// </summary>
        /// <value>The password.</value>
		public string Password { get; set; }
        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>The name.</value>
		public string Name { get; set; }
        /// <summary>
        /// Gets or sets the type.
        /// </summary>
        /// <value>The type.</value>
		public EAdminType Type { get; set; }
        /// <summary>
        /// Gets or sets the rights.
        /// </summary>
        /// <value>The rights.</value>
        public EAdminRight Rights { get; set; }
        /// <summary>
        /// Gets or sets the date created.
        /// </summary>
        /// <value>The date created.</value>
		public DateTime DateCreated { get; set; }
        /// <summary>
        /// Gets or sets the last login.
        /// </summary>
        /// <value>The last login.</value>
		public DateTime LastLogin { get; set; }
        /// <summary>
        /// Gets or sets the date modified.
        /// </summary>
        /// <value>The date modified.</value>
		public DateTime DateModified { get; set; }

		#endregion

		#region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="AdminEnt"/> class.
        /// </summary>
		public AdminEnt() {
			UserName = string.Empty;
			Password = string.Empty;
			Name = string.Empty;
			Type = EAdminType.Mod;
            Rights = EAdminRight.Nothing;
			DateCreated = DateTimeUtils.MinValue;
			LastLogin = DateTimeUtils.MinValue;
			DateModified = DateTimeUtils.MinValue;
		}

		#endregion
	}
}